<!DOCTYPE html>
<title>Badging: attempting to badge non-fully active document</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body></body>
<script>
  promise_test(async (t) => {
    const iframe = document.createElement("iframe");
    document.body.appendChild(iframe);
    await new Promise((resolve) => {
      iframe.onload = resolve;
      iframe.src = "about:blank";
    });
    const exceptionCtor = iframe.contentWindow.DOMException;
    const { navigator: nav } = iframe.contentWindow;
    iframe.remove();

    await promise_rejects_dom(
      t,
      "InvalidStateError",
      exceptionCtor,
      nav.setAppBadge()
    );

    await promise_rejects_dom(
      t,
      "InvalidStateError",
      exceptionCtor,
      nav.setAppBadge(1)
    );

    await promise_rejects_dom(
      t,
      "InvalidStateError",
      exceptionCtor,
      nav.setAppBadge(0)
    );

    await promise_rejects_dom(
      t,
      "InvalidStateError",
      exceptionCtor,
      nav.clearAppBadge()
    );
  }, "badging a non-fully active document should reject with InvalidStateError");
</script>
